package com.sky.mapper;

import com.sky.entity.ShoppingCart;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * PROJECT_NAME: sky-take-out
 * NAME: ShopingCartMapper
 * USER: zhang
 * DATE: 2023/5/22
 * DESCRIPTION :C端-购物车信息持久层
 */
@Mapper
public interface ShoppingCartMapper {
    /**
     * 添加购物车
     *
     * @param shoppingCart 购物车数据
     */
    void insertShoppingCart(@Param("shoppingCart") ShoppingCart shoppingCart);


    /**
     * 基于UserId + [dishId/setmealId/dishId+dishFlavor]进行数据查询
     *
     * @param conditionShoppingCart 用于保存查询条件的购物车对象
     * @return 满足查询条件的购物车数据集合
     */
    List<ShoppingCart> selectShoppingCart(@Param("conditionShoppingCart") ShoppingCart conditionShoppingCart);


    /**
     * 修改购物车中的数量
     * @param exitShoppingCart 更新后的购物车（只更新数量）
     */
    void updateShoppingCart(@Param("exitShoppingCart") ShoppingCart exitShoppingCart);

    /**
     * 清空购物车
     * @param userId 根据用户名清空购物车
     */
    void clearShoppingCart(@Param("userId") Long userId);

    /**
     * 删除当前商品
     * @param shoppingCart 要删除的商品信息
     */
    void deleteShoppingCart(@Param("shoppingCart") ShoppingCart shoppingCart);
}
